package com.jwsoft.manager.core.dao.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 所属学校表
 *
 * @author wangtao
 * @since 2022-11-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("edu_school")
@Schema(name = "EduSchool", title = "所属学校表", description = "所属学校表实体类")
public class EduSchool extends Model<EduSchool> {

    private static final long serialVersionUID = 1L;

    @Schema(name = "orgId", title = "学校id")
    @TableId(value = "org_id", type = IdType.ASSIGN_ID)
    private String orgId;

    @Schema(name = "schoolNum", title = "学校代码")
    @TableField(value = "school_num")
    private String schoolNum;

    @Schema(name = "schoolCodeXj", title = "省学籍库学校代码")
    @TableField(value = "school_code_xj")
    private String schoolCodeXj;
    @Schema(name = "schoolNameXj", description = "省学籍库学校名称")
    @TableField(value = "school_name_xj")
    private String schoolNameXj;
    @Schema(name = "shortNameXj", description = "省学籍库简称")
    @TableField(value = "short_name_xj")
    private String shortNameXj;

    @Schema(name = "schoolName", title = "学校名称")
    @TableField(value = "school_name")
    private String schoolName;

    @Schema(name = "shortName", title = "简称")
    @TableField(value = "short_name")
    private String shortName;

    @Schema(name = "schoolMaster", title = "校长")
    @TableField(value = "school_master")
    private String schoolMaster;

    @Schema(name = "masterPhone", title = "校长电话")
    @TableField(value = "master_phone")
    private String masterPhone;

    @Schema(name = "creditCode", title = "统一社会信用代码")
    @TableField(value = "credit_code")
    private String creditCode;

    @Schema(name = "phone", title = "手机号")
    @TableField(value = "phone")
    private String phone;

    @Schema(name = "schoolNature", title = "学校性质0.公办 1.民办")
    @TableField(value = "school_nature", updateStrategy = FieldStrategy.NOT_NULL)
    private String schoolNature;

    @Schema(name = "schoolCategory", title = "学校类别")
    @TableField(value = "school_category", updateStrategy = FieldStrategy.NOT_NULL)
    private String schoolCategory;

    @Schema(name = "street", title = "所属街道")
    @TableField(value = "street")
    private String street;

    @Schema(name = "centerFlag", title = "是否为中心学校1.是0.否")
    @TableField(value = "center_flag", updateStrategy = FieldStrategy.NOT_NULL)
    private String centerFlag;

    @Schema(name = "recruitStatus", title = "是否停止招生（0.正常，1.停止）")
    @TableField(value = "recruit_status", updateStrategy = FieldStrategy.NOT_NULL)
    private String recruitStatus;

    @Schema(name = "longitude", title = "经度")
    @TableField(value = "longitude")
    private BigDecimal longitude;

    @Schema(name = "latitude", title = "纬度")
    @TableField(value = "latitude")
    private BigDecimal latitude;

    @Schema(name = "orderBy", title = "排序字段")
    @TableField(value = "order_by")
    private Integer orderBy;

    @Schema(name = "keySchoolFlag", title = "是否重点学校（1.是0.不是）")
    @TableField(value = "key_school_flag", updateStrategy = FieldStrategy.NOT_NULL)
    private String keySchoolFlag;

    @Schema(name = "priOrderBy", title = "排序民办学校")
    @TableField(value = "pri_order_by")
    private Integer priOrderBy;

    @Schema(name = "virtualFlag", title = "是否虚拟学校（1.是0.不是）")
    @TableField(value = "virtual_flag", updateStrategy = FieldStrategy.NOT_NULL)
    private String virtualFlag;

    @Schema(name = "preFlag", title = "是否预报名（1.是0.不是）")
    @TableField(value = "pre_flag")
    private String preFlag;

    @Schema(name = "formalFlag", title = "是否正式报名（1.是0.不是）")
    @TableField(value = "formal_flag")
    private String formalFlag;

    @Schema(name = "status", title = "是否启用0.禁用1.启用")
    @TableField(value = "status", updateStrategy = FieldStrategy.NOT_NULL)
    private String status;

    @Schema(name = "houseEndTimeNo", title = "不限房产截止时间 1 不限 0 限制")
    @TableField(value = "house_end_time_no", updateStrategy = FieldStrategy.NOT_NULL)
    private String houseEndTimeNo;
    @Schema(name = "houseEndTime", title = "正学区房产截止时间")
    @TableField(value = "house_end_time", updateStrategy = FieldStrategy.NOT_NULL)
    private Date houseEndTime;
    @Schema(name = "houseEndTimeFw", title = "服务区房产截止时间")
    @TableField(value = "house_end_time_fw", updateStrategy = FieldStrategy.NOT_NULL)
    private Date houseEndTimeFw;
    @Schema(name = "authOrderByNo", title = "不限审核和录取类别顺序 1 不限 0 限制")
    @TableField(value = "auth_order_by_no", updateStrategy = FieldStrategy.NOT_NULL)
    private String authOrderByNo;

    @Schema(name = "householdEndTimeNo", title = "不限户籍截止时间 1 不限 0 限制")
    @TableField(value = "household_end_time_no", updateStrategy = FieldStrategy.NOT_NULL)
    private String householdEndTimeNo;
    @Schema(name = "householdEndTime", title = "正学区户籍截止时间")
    @TableField(value = "household_end_time", updateStrategy = FieldStrategy.NOT_NULL)
    private Date householdEndTime;
    @Schema(name = "householdEndTimeFw", title = "服务区户籍截止时间")
    @TableField(value = "household_end_time_fw", updateStrategy = FieldStrategy.NOT_NULL)
    private Date householdEndTimeFw;
    @Schema(name = "serviceFlag", title = "是否开通服务区")
    @TableField(value = "service_flag")
    private String serviceFlag;
    @Schema(name = "areaCode", title = "行政区划")
    @TableField(value = "area_code")
    private String areaCode;
    @Schema(name = "talentApplyFlag", title = "是否人才可申请学校 1 是 0 否")
    @TableField(value = "talent_apply_flag", updateStrategy = FieldStrategy.NOT_NULL)
    private String talentApplyFlag;
    @Schema(name = "followFlag", title = "是否开通长幼随学 0 否 1是")
    @TableField(value = "follow_flag", updateStrategy = FieldStrategy.NOT_NULL)
    private String followFlag;
    @Schema(name = "bindFlag", title = "是否开通捆绑摇号 0 否 1是")
    @TableField(value = "bind_flag", updateStrategy = FieldStrategy.NOT_NULL)
    private String bindFlag;
    @Schema(name = "del", title = "0,未删除,1,已删除")
    @TableField(value = "del", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    @TableLogic
    private String del;

    @Schema(name = "createName", title = "创建人")
    @TableField(value = "create_name", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private String createName;

    @Schema(name = "createTime", title = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NOT_NULL)
    private Date createTime;

    @Schema(name = "updateName", title = "修改人")
    @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private String updateName;

    @Schema(name = "updateTime", title = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.NOT_NULL)
    private Date updateTime;

    @Override
    public Serializable pkVal() {
        return this.orgId;
    }
}
